char text[64];
char *p = text;
int i;
+ PangoLayout *layout;
+ PangoRectangle rect;
+ int width;
codes = g_variant_get_child_value (item, 0);
for (i = 0; i < g_variant_n_children (codes); i++)
g_variant_unref (codes);
p[0] = 0;
- label = gtk_label_new (text);
+ label = gtk_label_new ("🙂");
attrs = pango_attr_list_new ();
pango_attr_list_insert (attrs, pango_attr_scale_new (PANGO_SCALE_X_LARGE));
gtk_label_set_attributes (GTK_LABEL (label), attrs);
pango_attr_list_unref (attrs);
+ layout = gtk_label_get_layout (GTK_LABEL (label));
+ pango_layout_get_extents (layout, &rect, NULL);
+ width = rect.width;
+
+ gtk_label_set_text (GTK_LABEL (label), text);
+ layout = gtk_label_get_layout (GTK_LABEL (label));
+ pango_layout_get_extents (layout, &rect, NULL);
+
+ /* Check for fallback rendering that generates too wide items */
+ if (rect.width >= 2 * width)
+ {
+ gtk_widget_destroy (label);
+ return;
+ }
+
child = gtk_flow_box_child_new ();
gtk_style_context_add_class (gtk_widget_get_style_context (child), "emoji");
g_object_set_data_full (G_OBJECT (child), "emoji-data",